//时间相关
export type TimeUnit='year'|'month'|'day'|'hour'|'minute'|'second';
//region dateFormat方法
export type FormatToken=
//年
	'yy'|'yyyy'|
	//季度, 2位-简写
	'Q'|'QQ'|
	//月, 3位-简写, 4位-全写
	'M'|'MM'|'MMM'|'MMMM'|
	//日
	'd'|'dd'|
	//一年中第几天
	'D'|'DD'|
	//星期, 0-6(0表示星期天)
	'e'|
	//星期, E 1-7(7表示星期天), EE-简写, EEE-全写
	'E'|'EE'|'EEE'|
	//小时, 0-23
	'H'|'HH'|
	//小时, 1-12
	'h'|'hh'|
	//小时, 0-11
	'K'|'KK'|
	//小时, 1-24
	'k'|'kk'|
	//分钟
	'm'|'mm'|
	//秒
	's'|'ss'|
	//毫秒
	'S'|'SS'|'SSS'|
	//上午, 下午
	'a'|
	//时区
	'Z'|'ZZ';
export type TimeTokenFormatter={
	[token in FormatToken]:(date:Date,dateLocale:Required<DateLocale>,timezoneOffset?:number) => string|number;
}
export interface DateLocale{
	weeks?:[string,string,string,string,string,string,string];
	weeksShort?:[string,string,string,string,string,string,string];
	months?:[string,string,string,string,string,string,string,string,string,string,string,string];
	monthsShort?:[string,string,string,string,string,string,string,string,string,string,string,string];
	quarters?:[string,string,string,string];
	am?:string;
	pm?:string;
}
export interface DateFormatOption{
	dateLocale?:DateLocale;
	timezoneOffset?:number;
}
export interface DateFormatToken{
	type:FormatToken|'text';
	value?:string;
}
export interface DateFormatCache{
	[key:string]:Array<DateFormatToken>;
}
//endregion
//region dateParse方法
export type ParseToken=
	'yy'|'yyyy'|
	'M'|'MMM'|'MMMM'|
	'd'|
	'H'|'k'|'h'|'K'|'a'|
	'm'|'s'|'S'|
	'Z'|'ZZ';
export interface DateParseOption{
	dateLocale?:DateLocale;
	timezoneOffset?:number;
}
export interface DateParseCache{
	[key:string]:{
		regex:RegExp;
	}
}
//endregion